Skip to content

Commit d06ed1b

Browse files
authored
Import of v0.30.0 (#1931)
1 parent 87fc845 commit d06ed1b

22 files changed

+1163
-703
lines changed

CHANGES.md

Lines changed: 87 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,83 @@ Change log
33

44
All notable changes to this program are documented in this file.
55

6-
0.29.1 (2021-04-09), `970ef713fe58`)
6+
0.30.0 (2021-09-16, `d372710b98a6`)
7+
------------------------------------
8+
9+
### Known problems
10+
11+
- _macOS 10.15 (Catalina) and later:_
12+
13+
Due to the requirement from Apple that all programs must be
14+
notarized, geckodriver will not work on Catalina if you manually
15+
download it through another notarized program, such as Firefox.
16+
17+
Whilst we are working on a repackaging fix for this problem, you can
18+
find more details on how to work around this issue in the [macOS
19+
notarization] section of the documentation.
20+
21+
- _Android:_
22+
23+
For releases of Firefox 89.0 and earlier Marionette will only be enabled in
24+
GeckoView based applications when the Firefox preference
25+
`devtools.debugger.remote-enabled` is set to `true` via [`moz:firefoxOptions`].
26+
27+
### Added
28+
29+
- Support for WebDriver clients to opt in to WebDriver BiDi.
30+
31+
Introduced the new boolean capability [`webSocketUrl`] that can be used by
32+
WebDriver clients to opt in to a bidirectional connection. A string capability
33+
with the same name will be returned by [`NewSession`], which contains the
34+
WebSocket URL of the newly created WebDriver session in the form of:
35+
`ws://host:port/session/<session id>`.
36+
37+
When running on Android a port forward will be set on the host machine,
38+
which is using the exact same port as on the device.
39+
40+
All the supported WebDriver BiDi commands depend on the version of
41+
Firefox, and not geckodriver. The first commands will be shipped in
42+
Firefox 94.
43+
44+
- It's now possible to set additional preferences when a custom profile has been
45+
specified. At the end of the session they will be removed.
46+
47+
### Fixed
48+
49+
- Improved Host header checks to reject requests not sent to a well-known
50+
local hostname or IP, or the server-specified hostname.
51+
52+
- Added validation that the `--host` argument resolves to a local IP address.
53+
54+
- Limit the `--foreground` argument of Firefox to MacOS only.
55+
56+
- Increased Marionette handshake timeout to not fail for slow connections.
57+
58+
- `Marionette:Quit` is no longer sent twice during session deletion.
59+
60+
- When deleting a session that was attached to an already running browser
61+
instance, the browser is not getting closed anymore.
62+
63+
- Android
64+
65+
- Starting Firefox on Android from a Windows based host will now succeed as
66+
we are using the correct Unix path separator to construct on-device paths.
67+
68+
- Arguments as specified in [`moz:firefoxOptions`] are now used when starting
69+
Firefox.
70+
71+
- Port forwards set for Marionette and the WebSocket server (WebDriver BiDi)
72+
are now correctly removed when geckodriver exits.
73+
74+
- The test root folder is now removed when geckodriver exists.
75+
76+
77+
0.29.1 (2021-04-09, `970ef713fe58`)
778
-------------------------------------
879

980
### Known problems
1081

11-
- _macOS 10.15 (Catalina):_
82+
- _macOS 10.15 (Catalina) and later:_
1283

1384
Due to the requirement from Apple that all programs must be
1485
notarized, geckodriver will not work on Catalina if you manually
@@ -21,9 +92,9 @@ All notable changes to this program are documented in this file.
2192
- _Android:_
2293

2394
Marionette will only be enabled in GeckoView based applications when the
24-
Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
25-
[`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
26-
for Android releases.
95+
Firefox preference `devtools.debugger.remote-enabled` is set to `true` via
96+
[`moz:firefoxOptions`]. This will be fixed in the Firefox 90 release for
97+
Android.
2798

2899
### Added
29100

@@ -58,7 +129,7 @@ All notable changes to this program are documented in this file.
58129

59130
### Known problems
60131

61-
- _macOS 10.15 (Catalina):_
132+
- _macOS 10.15 (Catalina) and later:_
62133

63134
Due to the requirement from Apple that all programs must be
64135
notarized, geckodriver will not work on Catalina if you manually
@@ -71,7 +142,7 @@ All notable changes to this program are documented in this file.
71142
- _Android:_
72143

73144
Marionette will only be enabled in GeckoView based applications when the
74-
Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
145+
Firefox preference `devtools.debugger.remote-enabled` is set to `true` via
75146
[`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
76147
for Android releases.
77148

@@ -84,7 +155,7 @@ All notable changes to this program are documented in this file.
84155

85156
### Added
86157

87-
- Introduced the new boolean capability `moz:debuggerAddress` that can be used
158+
- Introduced the new boolean capability [`moz:debuggerAddress`] that can be used
88159
to opt-in to the experimental Chrome DevTools Protocol (CDP) implementation.
89160
A string capability with the same name will be returned by [`NewSession`],
90161
which contains the `host:port` combination of the HTTP server that can be
@@ -98,7 +169,7 @@ All notable changes to this program are documented in this file.
98169

99170
### Known problems
100171

101-
- _macOS 10.15 (Catalina):_
172+
- _macOS 10.15 (Catalina) and later:_
102173

103174
Due to the requirement from Apple that all programs must be
104175
notarized, geckodriver will not work on Catalina if you manually
@@ -111,7 +182,7 @@ All notable changes to this program are documented in this file.
111182
- _Android:_
112183

113184
Marionette will only be enabled in GeckoView based applications when the
114-
Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
185+
Firefox preference `devtools.debugger.remote-enabled` is set to `true` via
115186
[`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
116187
for Android releases.
117188

@@ -160,7 +231,7 @@ All notable changes to this program are documented in this file.
160231

161232
### Known problems
162233

163-
- _macOS 10.15 (Catalina):_
234+
- _macOS 10.15 (Catalina) and later:_
164235

165236
Due to the requirement from Apple that all programs must be
166237
notarized, geckodriver will not work on Catalina if you manually
@@ -173,7 +244,7 @@ All notable changes to this program are documented in this file.
173244
- _Android:_
174245

175246
Marionette will only be enabled in GeckoView based applications when the
176-
Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
247+
Firefox preference `devtools.debugger.remote-enabled` is set to `true` via
177248
[`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
178249
for Android releases.
179250

@@ -221,7 +292,7 @@ has changed to Firefox ≥60.
221292

222293
### Known problems
223294

224-
- _macOS 10.15 (Catalina):_
295+
- _macOS 10.15 (Catalina) and later:_
225296

226297
Due to the recent requirement from Apple that all programs must
227298
be notarized, geckodriver will not work on Catalina if you manually
@@ -240,7 +311,7 @@ has changed to Firefox ≥60.
240311
- _Android:_
241312

242313
Marionette will only be enabled in GeckoView based applications when the
243-
Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
314+
Firefox preference `devtools.debugger.remote-enabled` is set to `true` via
244315
[`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
245316
for Android releases.
246317

@@ -427,8 +498,7 @@ with this particular release that we intend to release a fix for soon.
427498

428499
- ARMv7 HF builds have been discontinued
429500

430-
We [announced](https://lists.mozilla.org/pipermail/tools-marionette/2018-September/000035.html)
431-
back in September 2018 that we would stop building for ARM,
501+
We announced back in September 2018 that we would stop building for ARM,
432502
but builds can be self-serviced by building from source.
433503

434504
To cross-compile from another host system, you can use this command:
@@ -1491,6 +1561,7 @@ and greater.
14911561
[README]: https://github.com/mozilla/geckodriver/blob/master/README.md
14921562
[Browser Toolbox]: https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox
14931563
[WebDriver conformance]: https://wpt.fyi/results/webdriver/tests?label=experimental
1564+
[`webSocketUrl`]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/webSocketUrl
14941565
[`moz:firefoxOptions`]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions
14951566
[`moz:debuggerAddress`]: https://firefox-source-docs.mozilla.org/testing/geckodriver/Capabilities.html#moz-debuggeraddress
14961567
[Microsoft Visual Studio redistributable runtime]: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "geckodriver"
3-
version = "0.29.1"
3+
version = "0.30.0"
44
description = "Proxy for using WebDriver clients to interact with Gecko-based browsers."
55
keywords = ["webdriver", "w3c", "httpd", "mozilla", "firefox"]
66
repository = "https://hg.mozilla.org/mozilla-central/file/tip/testing/geckodriver"
@@ -17,17 +17,17 @@ hyper = "0.13"
1717
lazy_static = "1.0"
1818
log = { version = "0.4", features = ["std"] }
1919
marionette = { path = "./marionette" }
20-
mozdevice = "0.3.2"
21-
mozprofile = "0.7.2"
22-
mozrunner = "0.12.1"
23-
mozversion = "0.4.1"
20+
mozdevice = "0.4.0"
21+
mozprofile = "0.7.3"
22+
mozrunner = "0.13.0"
23+
mozversion = "0.4.2"
2424
regex = { version="1.0", default-features = false, features = ["perf", "std"] }
2525
serde = "1.0"
2626
serde_derive = "1.0"
2727
serde_json = "1.0"
2828
serde_yaml = "0.8"
2929
uuid = { version = "0.8", features = ["v4"] }
30-
webdriver = "0.43.1"
30+
webdriver = "0.44.0"
3131
zip = { version = "0.4", default-features = false, features = ["deflate"] }
3232

3333
[[bin]]

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,7 @@ Contact
7070
-------
7171

7272
The mailing list for geckodriver discussion is
73-
tools-marionette@lists.mozilla.org ([subscribe], [archive]).
73+
https://groups.google.com/a/mozilla.org/g/dev-webdriver.
7474

75-
There is also a Matrix channel to talk about using and developing
76-
geckodriver on `#interop:mozilla.org <https://chat.mozilla.org/#/room/#interop:mozilla.org>`__
77-
78-
[subscribe]: https://lists.mozilla.org/listinfo/tools-marionette
79-
[archive]: https://lists.mozilla.org/pipermail/tools-marionette/
75+
There is also an Element channel to talk about using and developing
76+
geckodriver on `#webdriver:mozilla.org <https://chat.mozilla.org/#/room/#webdriver:mozilla.org>`__

doc/ARM.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Self-serving an ARM build
22
=========================
33

4-
Mozilla [announced the intent] to deprecate ARMv7 HF builds of
4+
Mozilla announced the intent to deprecate ARMv7 HF builds of
55
geckodriver in September 2018. This does not mean you can no longer
66
use geckodriver on ARM systems, and this document explains how you
77
can self-service a build for ARMv7 HF.
@@ -35,5 +35,4 @@ cross-compile ARMv7 from a Linux host system is as follows:
3535
% cd testing/geckodriver
3636
% cargo build --release --target armv7-unknown-linux-gnueabihf
3737

38-
[announced the intent]: https://lists.mozilla.org/pipermail/tools-marionette/2018-September/000035.html
3938
[central]: https://hg.mozilla.org/mozilla-central/

doc/Patches.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Submitting patches
2+
==================
3+
4+
You can submit patches by using [Phabricator]. Walk through its documentation
5+
in how to set it up, and uploading patches for review. Don't worry about which
6+
person to select for reviewing your code. It will be done automatically.
7+
8+
Please also make sure to follow the [commit creation guidelines].
9+
10+
Once you have contributed a couple of patches, we are happy to sponsor you in
11+
[becoming a Mozilla committer]. When you have been granted commit access
12+
level 1, you will have permission to use the [Firefox CI] to trigger your own
13+
“try runs” to test your changes. You can use the following [try preset] to run
14+
the most relevant tests:
15+
16+
mach try --preset geckodriver
17+
18+
This preset will schedule geckodriver-related tests on various platforms. You can
19+
reduce the number of tasks by filtering on platforms (e.g. linux) or build type
20+
(e.g. opt):
21+
22+
mach try --preset geckodriver -xq "'linux 'opt"
23+
24+
[Phabricator]: https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html
25+
[commit creation guidelines]: https://mozilla-version-control-tools.readthedocs.io/en/latest/devguide/contributing.html?highlight=phabricator#submitting-patches-for-review
26+
[becoming a Mozilla committer]: https://www.mozilla.org/en-US/about/governance/policies/commit/
27+
[Firefox CI]: https://treeherder.mozilla.org/
28+
[try preset]: https://firefox-source-docs.mozilla.org/tools/try/presets.html

doc/Profiles.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Firefox (1), and a set of recommended preferences set on startup (2).
7575
These can be perused here:
7676

7777
1. [testing/geckodriver/src/prefs.rs](https://searchfox.org/mozilla-central/source/testing/geckodriver/src/prefs.rs)
78-
2. [testing/marionette/components/marionette/marionette.js](https://searchfox.org/mozilla-central/source/testing/marionette/components/marionette.js)
78+
2. [remote/components/marionette.js](https://searchfox.org/mozilla-central/source/remote/components/marionette.js)
7979

8080
As mentioned, these are _recommended_ preferences, and any user-defined
8181
preferences in the [user.js file] or as part of the [`prefs` capability]
@@ -84,7 +84,9 @@ take precedence. This means for example that the user can tweak
8484
starting the browser with a blank page.
8585

8686
The recommended preferences set at runtime (see 2 above) may also
87-
be disabled entirely by setting `marionette.prefs.recommended`.
87+
be disabled entirely by setting `remote.prefs.recommended` starting with Firefox
88+
91. For older versions of Firefox, the preference to use was
89+
`marionette.prefs.recommended`.
8890
This may however cause geckodriver to not behave correctly according
8991
to the WebDriver standard, so it should be used with caution.
9092

doc/Releasing.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ For each crate:
4545
1. Bump the version number in Cargo.toml
4646
2. Update the crate: `cargo update -p <crate name>`
4747
3. Commit the changes for the modified `Cargo.toml`, and `Cargo.lock`
48-
(can be found in the repositories root folder)
48+
(can be found in the repositories root folder). Use a commit message
49+
like `Bug XYZ - [rust-<crate name>] Release version <version>.`
4950

5051

5152
Update the change log

doc/Support.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ and required versions of Selenium and Firefox:
2222
<th>max
2323
</tr>
2424
</thead>
25+
<tr>
26+
<td>0.30.0
27+
<td>≥ 3.11 (3.14 Python)
28+
<td>78 ESR
29+
<td>n/a
2530
<tr>
2631
<td>0.29.1
2732
<td>≥ 3.11 (3.14 Python)

doc/index.rst

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ For developers
4040

4141
Building.md
4242
Testing.md
43+
Patches.md
4344
Releasing.md
4445
ARM.md
4546

@@ -48,10 +49,7 @@ Communication
4849
=============
4950

5051
The mailing list for geckodriver discussion is
51-
tools-marionette@lists.mozilla.org (`subscribe`_, `archive`_).
52+
https://groups.google.com/a/mozilla.org/g/dev-webdriver.
5253

5354
If you prefer real-time chat, ask your questions
54-
on `#interop:mozilla.org <https://chat.mozilla.org/#/room/#interop:mozilla.org>`__.
55-
56-
.. _subscribe: https://lists.mozilla.org/listinfo/tools-marionette
57-
.. _archive: https://lists.mozilla.org/pipermail/tools-marionette/
55+
on `#webdriver:mozilla.org <https://chat.mozilla.org/#/room/#webdriver:mozilla.org>`__.

0 commit comments

Comments
 (0)